package com.onpositive.notes.model;

import java.io.Serializable;
import java.util.Locale;

public interface ITemplateArgument<T> extends IHasClass<T>, Serializable{

	Class<T> getSubjectClass() ;
	
	T getArgumentValue() ;
	
	void setValue(Object obj) ;
	
	IArgumentModel<T, ? extends ITemplateArgument<T>> getModel() ;
	
	String getLabel() ;
	
	String getLabel( Locale locale ) ;
	
	boolean isRequired() ;
	
	ITemplate getTemplate() ;
	
	void setTemplateId( int templateId ) ;
	
	void setTemplateModelId( String templateModelId ) ;
	
	String getTemplateModelId() ;
}
